package com.eta.common.context;

import com.eta.common.entity.po.SysUser;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

/**
 * @author 星河一叶Ck
 * @date 2025/9/8
 * @description 用户上下文（存储当前线程的登录用户信息）
 */

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class UserContext {

    // 存储当前线程的登录用户信息
    private static final ThreadLocal<SysUser> USER_THREAD_LOCAL = new ThreadLocal<>();

    // 设置当前线程的登录用户信息
    public static void setUser(SysUser user) {
        USER_THREAD_LOCAL.set(user);
    }

    // 获取当前线程的登录用户信息
    public static SysUser getUser() {
        return USER_THREAD_LOCAL.get();
    }

    // 清空当前线程的登录用户信息
    public static void clear() {
        USER_THREAD_LOCAL.remove();
    }
}
